package com.ctshk.rpc.finance.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import com.ctshk.common.model.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 财务收款及退款单
 * </p>
 *
 * @author 叶冠峰
 * @since 2021-03-26
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_finance_bill")
@ApiModel(value="FinanceBill对象", description="财务收款及退款单")
public class FinanceBill extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "认款单ID")
    private Long confirmId;

    @ApiModelProperty(value = "单号")
    private String billNumber;

    @ApiModelProperty(value = "是否驳回（0 否 1 是）")
    private Integer isReject;

    @ApiModelProperty(value = "对账状态 0 未对账 1 已对账")
    private Integer checkBillStatus;

    @ApiModelProperty(value = "销账状态")
    private Integer offAccountStatus;

    @ApiModelProperty(value = "收退款类型1 收款 2 退款")
    private Integer billType;

    @ApiModelProperty(value = "业务类型")
    private Integer businessType;

    @ApiModelProperty(value = "收款方式ID")
    private Long collectionWayId;

    @ApiModelProperty(value = "收款方式")
    private String collectionWayName;

    @ApiModelProperty(value = "收款类型ID")
    private Long collectionTypeId;

    @ApiModelProperty(value = "收款类型")
    private String collectionTypeName;

    @ApiModelProperty(value = "收款金额")
    private BigDecimal collectionAmount;

    @ApiModelProperty(value = "币种ID")
    private Long currencyId;

    @ApiModelProperty(value = "币种名称")
    private String currencyName;

    @ApiModelProperty(value = "汇率")
    private Double exchangeRate;

    @ApiModelProperty(value = "收款时间")
    private LocalDateTime collectionTime;

    @ApiModelProperty(value = "收款凭证JSON")
    private String collectionVoucherJson;

    @ApiModelProperty(value = "销售单号")
    private String saleOrderNumber;

    @ApiModelProperty(value = "销售单ID")
    private Long saleOrderId;

    @ApiModelProperty(value = "产品ID")
    private String productId;

    @ApiModelProperty(value = "产品编号/团号")
    private String productNumber;

    @ApiModelProperty(value = "产品名称")
    private String productName;

    @ApiModelProperty(value = "资源信息")
    private String resourceInfo;

    @ApiModelProperty(value = "销售人员ID")
    private Long saleUserId;

    @ApiModelProperty(value = "销售人员名称")
    private String saleUserName;

    @ApiModelProperty(value = "销售部门ID")
    private Long saleDeptId;

    @ApiModelProperty(value = "退款类型ID")
    private Long refundTypeId;

    @ApiModelProperty(value = "退款类型")
    private String refundType;

    @ApiModelProperty(value = "退款方式ID")
    private Long refundWayId;

    @ApiModelProperty(value = "退款方式")
    private String refundWay;

    @ApiModelProperty(value = "退款账户JSON")
    private String refundAccountJson;

    @ApiModelProperty(value = "退款状态")
    private Integer refundStatus;

    @ApiModelProperty(value = "旅客来源1 散客 2 大客户")
    private Integer touristSource;

    @ApiModelProperty(value = "大客户ID")
    private Long bigClientId;

    @ApiModelProperty(value = "大客户名称")
    private String bigClientName;

    @ApiModelProperty(value = "旅客姓名")
    private String touristName;

    @ApiModelProperty(value = "联系电话")
    private String contactMobile;

    @ApiModelProperty(value = "退款时间")
    private LocalDateTime refundTime;

    @ApiModelProperty(value = "付款凭证")
    private String payVoucherJson;

    @ApiModelProperty(value = "退款备注")
    private String refundRemark;

    @ApiModelProperty(value = "退款确认状态")
    private Integer refundConfirmStatus;

    @ApiModelProperty(value = "创建人展示属性")
    private String createUser;

    @ApiModelProperty(value = "创建人")
    private Long createId;

    @ApiModelProperty(value = "修改人")
    private Long modifiedId;

    @ApiModelProperty(value = "删除标识")
    private Integer isDeleted;


}
